package cn.com.victorysoft.wellinfo.domain;

import cn.com.victorysoft.ylgl.service.commons.json.DateToISODateTimeSerializer;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 钻井基础信息
 */
public class DrillingBase {
    private String wellId;

    private String geoDescription;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd"
    )
    private Date spudDate;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd"
    )
    private Date endDrillingDate;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd"
    )
    private Date completionDate;

    private BigDecimal completionMd;

    private BigDecimal artificialWellBtm;

    private BigDecimal fluidDensity;

    private BigDecimal fluidViscosity;

    private BigDecimal immersionTime;

    private BigDecimal mdMax;

    private BigDecimal inclinationMax;

    private BigDecimal closureAzimuthMax;

    private BigDecimal koMd;

    private String cementQuality;

    private BigDecimal distanceTubingBushing;

    private BigDecimal distanceCasingBushing;


    public String getGeoDescription() {
        return geoDescription;
    }

    public void setGeoDescription(String geoDescription) {
        this.geoDescription = geoDescription;
    }
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd")
    public Date getSpudDate() {
        return spudDate;
    }

    public void setSpudDate(Date spudDate) {
        this.spudDate = spudDate;
    }

    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd")
    public Date getEndDrillingDate() {
        return endDrillingDate;
    }

    public void setEndDrillingDate(Date endDrillingDate) {
        this.endDrillingDate = endDrillingDate;
    }

    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd")
    public Date getCompletionDate() {
        return completionDate;
    }

    @JsonSerialize(using = DateToISODateTimeSerializer.class)
    public void setCompletionDate(Date completionDate) {
        this.completionDate = completionDate;
    }

    public BigDecimal getCompletionMd() {
        return completionMd;
    }

    public void setCompletionMd(BigDecimal completionMd) {
        this.completionMd = completionMd;
    }

    public BigDecimal getArtificialWellBtm() {
        return artificialWellBtm;
    }

    public void setArtificialWellBtm(BigDecimal artificialWellBtm) {
        this.artificialWellBtm = artificialWellBtm;
    }

    public BigDecimal getFluidDensity() {
        return fluidDensity;
    }

    public void setFluidDensity(BigDecimal fluidDensity) {
        this.fluidDensity = fluidDensity;
    }

    public BigDecimal getFluidViscosity() {
        return fluidViscosity;
    }

    public void setFluidViscosity(BigDecimal fluidViscosity) {
        this.fluidViscosity = fluidViscosity;
    }

    public BigDecimal getImmersionTime() {
        return immersionTime;
    }

    public void setImmersionTime(BigDecimal immersionTime) {
        this.immersionTime = immersionTime;
    }

    public BigDecimal getMdMax() {
        return mdMax;
    }

    public void setMdMax(BigDecimal mdMax) {
        this.mdMax = mdMax;
    }

    public BigDecimal getInclinationMax() {
        return inclinationMax;
    }

    public void setInclinationMax(BigDecimal inclinationMax) {
        this.inclinationMax = inclinationMax;
    }

    public BigDecimal getClosureAzimuthMax() {
        return closureAzimuthMax;
    }

    public void setClosureAzimuthMax(BigDecimal closureAzimuthMax) {
        this.closureAzimuthMax = closureAzimuthMax;
    }

    public BigDecimal getKoMd() {
        return koMd;
    }

    public void setKoMd(BigDecimal koMd) {
        this.koMd = koMd;
    }

    public String getCementQuality() {
        return cementQuality;
    }

    public void setCementQuality(String cementQuality) {
        this.cementQuality = cementQuality;
    }

    public BigDecimal getDistanceTubingBushing() {
        return distanceTubingBushing;
    }

    public void setDistanceTubingBushing(BigDecimal distanceTubingBushing) {
        this.distanceTubingBushing = distanceTubingBushing;
    }

    public BigDecimal getDistanceCasingBushing() {
        return distanceCasingBushing;
    }

    public void setDistanceCasingBushing(BigDecimal distanceCasingBushing) {
        this.distanceCasingBushing = distanceCasingBushing;
    }

    public String getWellId() {
        return wellId;
    }

    public void setWellId(String wellId) {
        this.wellId = wellId;
    }
}